//表示上下文

const context = {
    // get path(){
    //     //ctx.path == ctx.request.path
    //     return this.request.path;
    // }

};

/*
方括号表示法 vs 点表示法
点表示法（如 obj.property）用于访问已知且符合标识符规则的属性。
方括号表示法（如 obj["property"]）更灵活，可以处理动态生成或包含特殊字符的属性名。

为什么不用点表示法
如果使用点表示法，如this.target.key，这要求target和key都是静态已知的字符串，并且是有效的JavaScript标识符。
而在this[target][key]中，target和key可以是任何字符串，甚至是运行时动态计算得到的值。
*/

function defineGetter(target, key){
    context.__defineGetter__(key, function(){
        return this[target][key];
    })
}

defineGetter('request', 'path');
defineGetter('request', 'query');
defineGetter('request', 'url');


module.exports = context;